home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / game / misc / HereticPort.lha / hereticportal0.2 / HereticPortal.rexx < prev   
OS/2 REXX Batch file  |  1999-02-01  |  23KB  |  688 lines

  1. /* $VER: HereticPortal.rexx 0.2 (1999-02-01) */
  2. options results
  3.  
  4. libs = "rexxsupport.library rexxtricks.library"
  5. DO UNTIL libs='';PARSE VAR libs lib libs
  6. IF EXISTS('libs:'lib)|EXISTS('Libs/'lib)|EXISTS(lib) THEN DO
  7. IF ~show('L',lib) THEN call addlib(lib,0,-30,0);END;ELSE DO
  8. Say 'Library Error. Unable to open 'lib
  9. address HereticPortal ;quit
  10. END;END
  11.  
  12. call Tags
  13. SELECT
  14. WHEN arg(1)="START" then call Start
  15. WHEN arg(1)="CFGLOAD" then call Config_Heretic("Load")
  16. WHEN arg(1)="CFGSAVE" then call Config_Heretic("Save")
  17. WHEN arg(1)="LOADSETTINGS" then call LoadSettings
  18. WHEN arg(1)="SAVESETTINGS" then call SaveSettings
  19.  OTHERWISE call Init
  20. end
  21. exit
  22.  
  23. Init:
  24. address HereticPortal
  25. window ID DOOM TITLE '"HereticPortal v0.2"' COMMAND '"quit"' PORT HereticPortal ATTRS MUIA_Window_ScreenTitle '"HereticPortal 0.2 ©1999 Lorens Johansson Freely Distributable Emailware"'
  26.  menu LABEL "HereticPortal"
  27.   item COMMAND '"method 'MUIM_Application_AboutMUI' 0"' PORT HereticPortal ATTRS MUIA_Menuitem_Shortcut 'A' LABEL "About MUI"
  28.   item ATTRS MUIA_Menuitem_Title '-1'
  29.   item COMMAND '"quit"' PORT HereticPortal ATTRS MUIA_Menuitem_Shortcut 'Q' LABEL "Quit"
  30.  endmenu
  31.  menu LABEL "Settings"
  32.   item COMMAND '"method 'MUIM_Application_OpenConfigWindow'"' PORT HereticPortal ATTRS MUIA_Menuitem_Shortcut 'M' LABEL "MUI Settings..."
  33.   item ATTRS MUIA_Menuitem_Title '-1'
  34.   item COMMAND '"HereticPortal.rexx LOADSETTINGS"' ATTRS MUIA_Menuitem_Shortcut 'L' LABEL "Load Settings"
  35.   item COMMAND '"HereticPortal.rexx SAVESETTINGS"' ATTRS MUIA_Menuitem_Shortcut 'S' LABEL "Save Settings"
  36.  endmenu
  37.  
  38.  text help '"HereticPortal v0.2 by\nLorens Johansson (http://members.xoom.com/snorslex)\nIf you use this program, you are required to\nEmail the author (SnorsleX@SoftHome.net). Otherwise,\nhow is he supposed to know to keep supporting\nHereticPortal ?!?\n\033rLorens Johansson"' label "\033c\033bHereticPortal v0.2\033n\n\033cLorens Johansson\n\033cFreely Distributable Emailware"
  39.  
  40.  group REGISTER ATTRS MUIA_CycleChain 1 LABELS "Heretic (68k&PPC),AHeretic (68k),AmiHeretic (PPC),Information"
  41.  
  42.   group /* Heretic */
  43.    group REGISTER ATTRS MUIA_CycleChain 1 LABELS "Main,Settings"
  44.     group /* Main */
  45.      group frame ATTRS MUIA_Group_Columns 8 label "Parameters"
  46.       label "-asl"
  47.       check ID C_ASL ATTRS MUIA_CycleChain 1 HELP '"Use asl requester to select screen mode defsult is PAL|LORES (in PPC version you will see other screen modes than lores, but please DO NOT select other resolution than 320*xxx)."'
  48.       label "-directcgx"
  49.       check ID C_DIR ATTRS MUIA_CycleChain 1 HELP '"Use fast copy routines instead of writepixel array does not work with window mode."'
  50.       label "-fps"
  51.       check ID C_FPS ATTRS MUIA_CycleChain 1 HELP '"Shows online fps counter."'
  52.       label "-mouse"
  53.       check ID C_MOU ATTRS MUIA_CycleChain 1 HELP '"Turns mouse on."'
  54.       label "-music"
  55.       check ID C_MUS ATTRS MUIA_CycleChain 1 HELP '"Enables music."'
  56.       label "-nodoublebuffer"
  57.       check ID C_NOD ATTRS MUIA_CycleChain 1 HELP '"Turns off double buffering."'
  58.       label "-nosfx"
  59.       check ID C_NOS ATTRS MUIA_CycleChain 1 HELP '"Disables sound fx effects."'
  60.       label "-nosound"
  61.       check ID C_NOO ATTRS MUIA_CycleChain 1 HELP '"Disables music and sfx (no sound at all)."'
  62.       label "-window"
  63.       check ID C_WIN ATTRS MUIA_CycleChain 1 HELP '"Display results in window on workbench screen workbench must have least 15 bit depth doublebuffering does not work on window."'
  64.      endgroup
  65.      space
  66.      group ATTRS MUIA_Group_Columns 2
  67.       label "Heretic Path:"
  68.       popasl ID HPATH ATTRS MUIA_CycleChain 1 HELP '"Select the Heretic executable!"'
  69.      endgroup
  70.     endgroup /* Main */
  71.  
  72.     group /* Settings */
  73.      group frame ATTRS MUIA_Group_Columns 2 label "Heretic.cfg"
  74.       button ID CFGLO ATTRS MUIA_CycleChain 1 command """HereticPortal.rexx CFGLOAD""" label "Load Heretic.cfg"
  75.       button ID CFGSA ATTRS MUIA_CycleChain 1 command """HereticPortal.rexx CFGSAVE""" label "Save Heretic.cfg"
  76.      endgroup
  77.  
  78.      group REGISTER ATTRS MUIA_CycleChain 1 LABELS "Misc,Keys"
  79.       group scroll ATTRS MUIA_Group_Columns 2
  80.        label "Mouse Sensitivity:"
  81.        slider ID 1_1 ATTRS MUIA_CycleChain 1 MUIA_Slider_Min 0 MUIA_Slider_Max 9
  82.        label "Sfx Volume:"
  83.        slider ID 1_2 ATTRS MUIA_CycleChain 1 MUIA_Slider_Min 0 MUIA_Slider_Max 15
  84.        label "Music Volume:"
  85.        slider ID 1_3 ATTRS MUIA_CycleChain 1 MUIA_Slider_Min 0 MUIA_Slider_Max 15
  86.        label "Gamma Correct:"
  87.        slider ID 1_4 ATTRS MUIA_CycleChain 1 MUIA_Slider_Min 0 MUIA_Slider_Max 4
  88.        label "Screen Blocks:"
  89.        slider ID 1_5 ATTRS MUIA_CycleChain 1 MUIA_Slider_Min 3 MUIA_Slider_Max 11
  90.       endgroup
  91.       group scroll ATTRS MUIA_Group_Columns 2 MUIA_Disabled 1
  92.        label "Key Right:"
  93.        poplist ID 1_20 ATTRS MUIA_CycleChain 1 labels keys
  94.        label "Key Left:"
  95.        poplist ID 1_21 ATTRS MUIA_CycleChain 1 labels keys
  96.        label "Key Up:"
  97.        poplist ID 1_22 ATTRS MUIA_CycleChain 1 labels keys
  98.        label "Key Down:"
  99.        poplist ID 1_23 ATTRS MUIA_CycleChain 1 labels keys
  100.        label "Key Strafe Left:"
  101.        poplist ID 1_24 ATTRS MUIA_CycleChain 1 labels keys
  102.        label "Key Strafe Right:"
  103.        poplist ID 1_25 ATTRS MUIA_CycleChain 1 labels keys
  104.        label "Key Fly Up:"
  105.        poplist ID 1_26 ATTRS MUIA_CycleChain 1 labels keys
  106.        label "Key Fly Down:"
  107.        poplist ID 1_27 ATTRS MUIA_CycleChain 1 labels keys
  108.        label "Key Fly Center:"
  109.        poplist ID 1_28 ATTRS MUIA_CycleChain 1 labels keys
  110.        label "Key Look Up:"
  111.        poplist ID 1_29 ATTRS MUIA_CycleChain 1 labels keys
  112.        label "Key Look Down:"
  113.        poplist ID 1_30 ATTRS MUIA_CycleChain 1 labels keys
  114.        label "Key Look Center:"
  115.        poplist ID 1_31 ATTRS MUIA_CycleChain 1 labels keys
  116.        label "Key Inv Left:"
  117.        poplist ID 1_32 ATTRS MUIA_CycleChain 1 labels keys
  118.        label "Key Inv Right:"
  119.        poplist ID 1_33 ATTRS MUIA_CycleChain 1 labels keys
  120.        label "Key Use Artifact:"
  121.        poplist ID 1_34 ATTRS MUIA_CycleChain 1 labels keys
  122.        label "Key Fire:"
  123.        poplist ID 1_35 ATTRS MUIA_CycleChain 1 labels keys
  124.        label "Key Use:"
  125.        poplist ID 1_36 ATTRS MUIA_CycleChain 1 labels keys
  126.        label "Key Strafe:"
  127.        poplist ID 1_37 ATTRS MUIA_CycleChain 1 labels keys
  128.        label "Key Speed:"
  129.        poplist ID 1_38 ATTRS MUIA_CycleChain 1 labels keys
  130.       endgroup
  131.      endgroup
  132.     endgroup /* Settings */
  133.    endgroup
  134.   endgroup
  135.  
  136.   group /* AHeretic */
  137.    group REGISTER ATTRS MUIA_CycleChain 1 LABELS "Main,Settings"
  138.     group /* Main */
  139.      group ATTRS MUIA_Group_Columns 2
  140.       label "AHeretic Path:"
  141.       popasl ID AHPAT ATTRS MUIA_CycleChain 1 HELP '"Select the AHeretic executable!"'
  142.      endgroup
  143.     endgroup /* Main */
  144.     group /* Settings */
  145.      label "Coming soon..."
  146.     endgroup /* Settings */
  147.    endgroup
  148.   endgroup /* AHeretic */
  149.  
  150.   group /* AmiHeretic */
  151.    group REGISTER ATTRS MUIA_CycleChain 1 LABELS "Main,Settings"
  152.     group /* Main */
  153.      group ATTRS MUIA_Group_Columns 2
  154.       label "AmiHeretic Path:"
  155.       popasl ID AMHPA ATTRS MUIA_CycleChain 1 HELP '"Select the AmiHeretic executable!"'
  156.      endgroup
  157.     endgroup /* Main */
  158.     group /* Settings */
  159.      label "Coming soon..."
  160.     endgroup /* Settings */
  161.    endgroup
  162.   endgroup /* AmiHeretic */
  163.  
  164.   group /* Information */
  165.    group REGISTER ATTRS MUIA_CycleChain 1 LABELS "About,Cheats,Credits"
  166.     group /* About */
  167.      text label "\033c\033bHereticPortal v0.2\033n\n\033cFreely Distributable Emailware\n\n\033cPlease visit my homepage:\nhttp://members.xoom.com/snorslex/\n\nPlease E-Mail me if you like/hate the program!\nSnorsleX@SoftHome.net\n\n\033r©Copyright 1999 Lorens Johansson"
  168.     endgroup /* About */
  169.     group /* Cheats */
  170.      list ID CHEAT TITLE """\033bCheat,\033bDescription""" ATTRS MUIA_CycleChain 1 MUIA_List_Format """MIW=15 BAR,""" MUIA_List_DragSortable 1
  171.     endgroup /* Cheats */
  172.     group /* Credits */
  173.      view ATTRS MUIA_CycleChain 1 string "\033c\033bCredits goes to:\n\n\033lRobert Karlsson - Beta Testing and for the name HereticPortal :)"
  174.     endgroup /* Credits */
  175.    endgroup
  176.   endgroup /* Information */
  177.  
  178.  endgroup
  179.  
  180.  group ATTRS MUIA_Group_Columns 2
  181.   label "Which Port:"
  182.   cycle ID WPORT ATTRS MUIA_CycleChain 1 help "Select which port to play!" labels "Heretic,AHeretic,AmiHeretic"
  183.   label "Buffers:"
  184.   slider ID BUFFS ATTRS MUIA_CycleChain 1 MUIA_Slider_Min 0 MUIA_Slider_Max 10000
  185.  endgroup
  186.  
  187.  group ATTRS MUIA_Group_Columns 3
  188.   button ID START ATTRS MUIA_CycleChain 1 help '"Starts Heretic."' COMMAND """HereticPortal.rexx START""" label "Run Heretic"
  189.   space HORIZ
  190.   button ID QUIT ATTRS MUIA_CycleChain 1 help '"Quits HereticPortal."' COMMAND '"quit"' PORT HereticPortal label "Quit HereticPortal"
  191.  endgroup
  192. endwindow
  193. listline.0 = 22
  194. listline.1 = "\0333quicken,God Mode"
  195. listline.2 = "\0333skel,All Keys"
  196. listline.3 = "\0333shazam,Full-Strength Weapons"
  197. listline.4 = "\0333rambo,All Weapons"
  198. listline.5 = "\0333ponce,Full Health"
  199. listline.6 = "\0333massacre,Kills all enemies on the level."
  200. listline.7 = "\0333kitty,No Clip"
  201. listline.8 = "\0333idkfa,No weapons."
  202. listline.9 = "\0333iddqd,Instant death."
  203. listline.10 = ",\033bJ:\033n Chaos Device."
  204. listline.11 = ",\033bI:\033n Wings of Wrath."
  205. listline.12 = ",\033bH:\033n Morph Ovum."
  206. listline.13 = ",\033bG:\033n Time Bomb of the Ancients."
  207. listline.14 = ",\033bF:\033n Torch."
  208. listline.15 = ",\033bE:\033n Tome of Power."
  209. listline.16 = ",\033bD:\033n Mystic Urn."
  210. listline.17 = ",\033bC:\033n Quartz Flask."
  211. listline.18 = ",\033bB:\033n Shadowsphere."
  212. listline.19 = ",\033bA:\033n Ring of Invulnerability "
  213. listline.20 = "\0333gimme#,Get Artifact. (A-J)"
  214. listline.21 = "\0333engage#?,Level Skip. #=Episode ?=Level"
  215. listline.22 = "\0333cockadoodledoo,Chicken mode."
  216. i = 0
  217. do listline.0
  218.  i = i + 1
  219.  list ID CHEAT INSERT STRING listline.i
  220. end
  221. call LoadSettings
  222. return
  223.  
  224. Start:
  225. say "-) Getting info from GUI. (-"
  226. address HereticPortal
  227. cycle ID WPORT
  228. WHICHPORT = result
  229. if WHICHPORT = "Heretic" then do
  230.  popasl ID HPATH
  231.  FULLPATH = result
  232. end
  233. if WHICHPORT = "AHeretic" then do
  234.  popasl ID AHPAT
  235.  FULLPATH = result
  236. end
  237. if WHICHPORT = "AmiHeretic" then do
  238.  popasl ID AMHPA
  239.  FULLPATH = result
  240. end
  241. plats = pos(':',FULLPATH)
  242. DIR = left(FULLPATH,plats)
  243. FULLPATH = delstr(FULLPATH, 1, plats)
  244. done = 0
  245. do until done = 1
  246.  plats = pos('/',FULLPATH)
  247.  if plats ~= 0 then do
  248.   DIR = DIR||left(FULLPATH,plats)
  249.   FULLPATH = delstr(FULLPATH, 1, plats)
  250.  end
  251.  else do
  252.   FILE = delstr(FULLPATH, 1, plats)
  253.   done = 1
  254.  end
  255. end
  256. if WHICHPORT = "Heretic" then do
  257.  check ID C_ASL
  258.  if result = 1 then  FILE = FILE||" -asl"
  259.  check ID C_DIR
  260.  if result = 1 then FILE = FILE||" -directcgx"
  261.  check ID C_FPS
  262.  if result = 1 then FILE = FILE||" -fps"
  263.  check ID C_MOU
  264.  if result = 1 then FILE = FILE||" -mouse"
  265.  check ID C_MUS
  266.  if result = 1 then FILE = FILE||" -music"
  267.  check ID C_NOD
  268.  if result = 1 then FILE = FILE||" -nodoublebuffer"
  269.  check ID C_NOS
  270.  if result = 1 then FILE = FILE||" -nosfx"
  271.  check ID C_NOO
  272.  if result = 1 then FILE = FILE||" -nosound"
  273.  check ID C_WIN
  274.  if result = 1 then FILE = FILE||" -window"
  275. end
  276. say "-) Changing Directory. (-"
  277. call PRAGMA(D,DIR)
  278. /*
  279. say "-) Setting Stack Value (-"
  280. Address HereticPortal knob id STAC ATTRS MUIA_Slider_Level
  281. newstack = result
  282. say "-) New Stack is ["newstack"] (-"
  283. call pragma(S,newstack)
  284. */
  285. say "-) Caculates Buffers (-"
  286. parse var DIR drive ":" rest
  287. drive = drive || ":"
  288. address command "addbuffers "||drive||" >t:buffers"
  289. if ~open(buff,'t:buffers',"R") then do
  290.  say "-» Something went wrong when adding buffers to "||drive||" «-"
  291.  exit
  292. end
  293. buffers = readln(buff)
  294. buffers = word(buffers,3)
  295. call close(buff)
  296. address command "delete t:buffers <>NIL: quiet"
  297. say "-) There is "||buffers||" buffers on "||drive||" (-"
  298. Address HereticPortal slider id BUFFS ATTRS MUIA_Slider_Level
  299. newbuff = result
  300. buffchange = newbuff - buffers
  301. if buffchange > 0 then do
  302.  say "-) Needs to add "||buffchange||" buffers to "||drive||" (-"
  303.  say "-) Adding buffers. (-"
  304. end
  305. if buffchange < 0 then do
  306.  say "-) Needs to remove "||abs(buffchange)||" buffers from "||drive||" (-"
  307.  say "-) Removing buffers. (-"
  308. end
  309. address command "addbuffers "||drive buffchange||" >NIL:"
  310. say "-) The commandline is ["||FILE||"] (-"
  311. if WHICHPORT = "Heretic" then do
  312.  say "-) Launching Heretic. (-"
  313. end
  314. if WHICHPORT = "AHeretic" then do
  315.  say "-) Launching AHeretic. (-"
  316. end
  317. if WHICHPORT = "AmiHeretic" then do
  318.  say "-) Launching AmiHeretic. (-"
  319. end
  320. say ""
  321. address command FILE
  322. return
  323.  
  324. LoadSettings:
  325. if open(set,'HereticPortal.prefs',"R") then do
  326.  address HereticPortal
  327.  call readln(set)
  328.  check ID C_ASL ATTRS MUIA_Selected result
  329.  call readln(set)
  330.  check ID C_DIR ATTRS MUIA_Selected result
  331.  call readln(set)
  332.  check ID C_FPS ATTRS MUIA_Selected result
  333.  call readln(set)
  334.  check ID C_MOU ATTRS MUIA_Selected result
  335.  call readln(set)
  336.  check ID C_MUS ATTRS MUIA_Selected result
  337.  call readln(set)
  338.  check ID C_NOD ATTRS MUIA_Selected result
  339.  call readln(set)
  340.  check ID C_NOS ATTRS MUIA_Selected result
  341.  call readln(set)
  342.  check ID C_NOO ATTRS MUIA_Selected result
  343.  call readln(set)
  344.  check ID C_WIN ATTRS MUIA_Selected result
  345.  call readln(set)
  346.  cycle ID WPORT ATTRS MUIA_Cycle_Active result
  347.  call readln(set)
  348.  slider ID BUFFS ATTRS MUIA_Slider_Level result
  349.  call readln(set)
  350.  popasl ID HPATH content result
  351.  call readln(set)
  352.  popasl ID AHPAT content result
  353.  call readln(set)
  354.  popasl ID AMHPA content result
  355.  call close(set)
  356. end
  357. else say "Could not find HereticPortal.Prefs"
  358. return
  359.  
  360. SaveSettings:
  361. call open(set,'HereticPortal.prefs',"W")
  362.  address HereticPortal
  363.  check ID C_ASL
  364.  call writeln(set,result)
  365.  check ID C_DIR
  366.  call writeln(set,result)
  367.  check ID C_FPS
  368.  call writeln(set,result)
  369.  check ID C_MOU
  370.  call writeln(set,result)
  371.  check ID C_MUS
  372.  call writeln(set,result)
  373.  check ID C_NOD
  374.  call writeln(set,result)
  375.  check ID C_NOS
  376.  call writeln(set,result)
  377.  check ID C_NOO
  378.  call writeln(set,result)
  379.  check ID C_WIN
  380.  call writeln(set,result)
  381.  cycle ID WPORT
  382.  WhichP = result
  383.  if WhichP = "Heretic" then call writeln(set,"0")
  384.  if WhichP = "AHeretic" then call writeln(set,"1")
  385.  if WhichP = "AmiHeretic" then call writeln(set,"2")
  386.  slider ID BUFFS
  387.  call writeln(set,result)
  388.  popasl ID HPATH
  389.  call writeln(set,result)
  390.  popasl ID AHPAT
  391.  call writeln(set,result)
  392.  popasl ID AMHPA
  393.  call writeln(set,result)
  394. call close(set)
  395. return
  396.  
  397. Tags:
  398. MUIA_Application_Sleep = 0x80425711
  399. MUIA_AppMessage = 0x80421955
  400. MUIA_ControlChar = 0x8042120b
  401. MUIA_Cycle_Active = 0x80421788
  402. MUIA_CycleChain = 0x80421ce7
  403. MUIA_Disabled = 0x80423661
  404. MUIA_Dropable = 0x8042fbce
  405. MUIA_FillArea = 0x804294a3
  406. MUIA_Gauge_Current = 0x8042f0dd
  407. MUIA_Gauge_Divide = 0x8042d8df
  408. MUIA_Gauge_Horiz =0x804232dd
  409. MUIA_Gauge_InfoText = 0x8042bf15
  410. MUIA_Gauge_Max = 0x8042bcdb
  411. MUIA_Group_Columns = 0x8042f416
  412. MUIA_Group_Horiz = 0x8042536b
  413. MUIA_Group_Rows = 0x8042b68f
  414. MUIA_List_Active = 0x8042391c
  415. MUIA_List_AutoVisible = 0x8042a445
  416. MUIA_List_DragSortable = 0x80426099
  417. MUIA_List_DropMark = 0x8042aba6
  418. MUIA_List_Entries = 0x80421654
  419. MUIA_List_First = 0x804238d4
  420. MUIA_List_Format = 0x80423c0a
  421. MUIA_List_InsertPosition = 0x8042d0cd
  422. MUIA_List_MinLineHeight = 0x8042d1c3
  423. MUIA_List_Quiet = 0x8042d8c7
  424. MUIA_List_Title = 0x80423e66
  425. MUIA_List_Visible = 0x8042191f
  426. MUIA_Menuitem_Checked = 0x8042562a
  427. MUIA_Menuitem_Checkit = 0x80425ace
  428. MUIA_Menuitem_Enabled = 0x8042ae0f
  429. MUIA_Menuitem_Exclude = 0x80420bc6
  430. MUIA_Menuitem_Shortcut = 0x80422030
  431. MUIA_Menuitem_Title = 0x804218be
  432. MUIA_Menuitem_Toggle = 0x80424d5c
  433. MUIA_Numeric_Default = 0x804263e8
  434. MUIA_Numeric_Format = 0x804263e9
  435. MUIA_Numeric_Max = 0x8042d78a
  436. MUIA_Numeric_Min = 0x8042e404
  437. MUIA_Numeric_Reverse = 0x8042f2a0
  438. MUIA_Numeric_RevLeftRight = 0x804294a7
  439. MUIA_Numeric_RevUpDown = 0x804252dd
  440. MUIA_Numeric_Value = 0x8042ae3a
  441. MUIA_Radio_Active = 0x80429b41
  442. MUIA_Selected = 0x8042654b
  443. MUIA_ShowMe = 0x80429ba8
  444. MUIA_Slider_Horiz = 0x8042fad1
  445. MUIA_Slider_Level = 0x8042ae3a
  446. MUIA_Slider_Max = 0x8042d78a
  447. MUIA_Slider_Min = 0x8042e404
  448. MUIA_String_Contents = 0x80428ffd
  449. MUIA_Weight = 0x80421d1f
  450. MUIA_Window_Activate = 0x80428d2f
  451. MUIA_Window_AppWindow = 0x804280cf
  452. MUIA_Window_Backdrop = 0x8042c0bb
  453. MUIA_Window_Borderless = 0x80429b79
  454. MUIA_Window_DepthGadget = 0x80421923
  455. MUIA_Window_DragBar = 0x8042045d
  456. MUIA_Window_Height = 0x80425846
  457. MUIA_Window_IsSubWindow = 0x8042b5aa
  458. MUIA_Window_NoMenus = 0x80429df5
  459. MUIA_Window_Open = 0x80428aa0
  460. MUIA_Window_PublicScreen = 0x804278e4
  461. MUIA_Window_ScreenTitle = 0x804234b0
  462. MUIA_Window_SizeGadget = 0x8042e33d
  463. MUIA_Window_Sleep = 0x8042e7db
  464.  
  465. MUIM_Application_AboutMUI = 0x8042d21d
  466. MUIM_Application_OpenConfigWindow = 0x804299ba
  467. MUIM_NoNotifySet = 0x8042216f
  468. MUIM_Notify = 0x8042c9cb
  469. MUIM_Set = 0x8042549a
  470.  
  471. MUIV_EveryTime = 0x49893131
  472. MUIV_TriggerValue = 0x49893131
  473.  
  474. TRUE = 1
  475. FALSE = 0
  476. R='0A'X
  477. keys = "9-Tab,13-Return,27-Escape,39-',43-+,45-(Minus),46-.,47-?????,48-0,49-1,50-2,51-3,52-4,53-5,54-6,55-7,56-8,57-9,61-(Equals),71-?????,73-?????,79-Num_4,81-Num_7,82-?????,83-Num_1,91-?????,92-Backslash,93-?????,97-A,98-B,99-C,100-D,101-E,102-F,103-G,104-H,105-I,106-J,107-K,108-L,109-M,110-N,111-O,112-P,113-Q,114-R,115-S,116-T,117-U,118-V,119-W,120-X,121-Y,122-Z,127-Backspace,157-CTRL,172-Cursor_Left,173-Cursor_Up,174-Cursor_Right,175-Cursor_Down,182-Right_Shift,183-Left_Shift,184-Right_Alt,185-Left_Alt,187-F1,188-F2,189-F3,190-F4,191-F5,192-F6,193-F7,194-F8,195-F9,196-F10,217-Left_Amiga,218-Right_Amiga,219-Del,220-Help,221-Num_7,222-Num_8,223-Num_9,224-Num_4,225-Num_5,226-Num_6,227-Num_1,228-Num_2,229-Num_3,230-Num_0,231-Num_.,232-Num_Enter,233-Num_(,234-Num_)"
  478. Return 0
  479.  
  480. Config_Heretic:
  481.  address HereticPortal
  482.  popasl ID HPATH
  483.  PATH = result
  484.  plats = pos(':',PATH)
  485.  DIR = left(PATH,plats)
  486.  PATH = delstr(PATH, 1, plats)
  487.  done = 0
  488.  do until done = 1
  489.   plats = pos('/',PATH)
  490.   if plats ~= 0 then do
  491.    DIR = DIR||left(PATH,plats)
  492.    PATH = delstr(PATH, 1, plats)
  493.   end
  494.   else done = 1
  495.  end
  496.  
  497.  if ~exists(DIR||"Heretic.cfg") then do
  498.   say "Heretic.cfg was not found! Looked in: "||DIR
  499.   return
  500.  end
  501.  
  502.  address HereticPortal
  503.  button ID CFGLO ATTRS MUIA_Disabled 1
  504.  button ID CFGSA ATTRS MUIA_Disabled 1
  505.  
  506.  call open(file,DIR||"Heretic.cfg","R")
  507.  
  508.  i = 1
  509.  do until eof(file)
  510.   line.i = readln(file)
  511.   i = i + 1
  512.  end
  513.  
  514.  line.0 = i - 1
  515.  
  516.  if arg(1) = "Load" then lors = "L"
  517.  if arg(1) = "Save" then lors = "S"
  518.  
  519.  call ch("mouse_sensitivity",1_1,lors,s)
  520.  call ch("sfx_volume",1_2,lors,s)
  521.  call ch("music_volume",1_3,lors,s)
  522.  call ch("usegamma",1_4,lors,s)
  523.  call ch("screenblocks",1_5,lors,s)
  524. /*
  525.  if lors = "L" then do
  526.   call ch("key_right",1_20,lors,"key")
  527.   call LoadKey(result,"1_20")
  528.   call ch("key_left",1_21,lors,"key")
  529.   call LoadKey(result,"1_21")
  530.   call ch("key_up",1_22,lors,"key")
  531.   call LoadKey(result,"1_22")
  532.   call ch("key_down",1_23,lors,"key")
  533.   call LoadKey(result,"1_23")
  534.   call ch("key_strafeleft",1_24,lors,"key")
  535.   call LoadKey(result,"1_24")
  536.   call ch("key_straferight",1_25,lors,"key")
  537.   call LoadKey(result,"1_25")
  538.   call ch("key_flyup",1_26,lors,"key")
  539.   call LoadKey(result,"1_26")
  540.   call ch("key_flydown",1_27,lors,"key")
  541.   call LoadKey(result,"1_27")
  542.   call ch("key_flycenter",1_28,lors,"key")
  543.   call LoadKey(result,"1_28")
  544.   call ch("key_lookup",1_29,lors,"key")
  545.   call LoadKey(result,"1_29")
  546.   call ch("key_lookdown",1_30,lors,"key")
  547.   call LoadKey(result,"1_30")
  548.   call ch("key_lookcenter",1_31,lors,"key")
  549.   call LoadKey(result,"1_31")
  550.   call ch("key_invleft",1_32,lors,"key")
  551.   call LoadKey(result,"1_32")
  552.   call ch("key_invright",1_33,lors,"key")
  553.   call LoadKey(result,"1_33")
  554.   call ch("key_useartifact",1_34,lors,"key")
  555.   call LoadKey(result,"1_34")
  556.   call ch("key_fire",1_35,lors,"key")
  557.   call LoadKey(result,"1_35")
  558.   call ch("key_use",1_36,lors,"key")
  559.   call LoadKey(result,"1_36")
  560.   call ch("key_strafe",1_37,lors,"key")
  561.   call LoadKey(result,"1_37")
  562.   call ch("key_speed",1_38,lors,"key")
  563.   call LoadKey(result,"1_38")
  564.  end
  565.  if lors = "S" then do
  566.   call SaveKey("1_20")
  567.   call ch("key_right",1_20,lors,"key")
  568.   call SaveKey("1_21")
  569.   call ch("key_left",1_21,lors,"key")
  570.   call SaveKey("1_22")
  571.   call ch("key_up",1_22,lors,"key")
  572.   call SaveKey("1_23")
  573.   call ch("key_down",1_23,lors,"key")
  574.   call SaveKey("1_24")
  575.   call ch("key_strafeleft",1_24,lors,"key")
  576.   call SaveKey("1_25")
  577.   call ch("key_straferight",1_25,lors,"key")
  578.   call SaveKey("1_26")
  579.   call ch("key_flyup",1_26,lors,"key")
  580.   call SaveKey("1_27")
  581.   call ch("key_flydown",1_27,lors,"key")
  582.   call SaveKey("1_28")
  583.   call ch("key_flycenter",1_28,lors,"key")
  584.   call SaveKey("1_29")
  585.   call ch("key_lookup",1_29,lors,"key")
  586.   call SaveKey("1_30")
  587.   call ch("key_lookdown",1_30,lors,"key")
  588.   call SaveKey("1_31")
  589.   call ch("key_lookcenter",1_31,lors,"key")
  590.   call SaveKey("1_32")
  591.   call ch("key_invleft",1_32,lors,"key")
  592.   call SaveKey("1_33")
  593.   call ch("key_invright",1_33,lors,"key")
  594.   call SaveKey("1_34")
  595.   call ch("key_useartifact",1_34,lors,"key")
  596.   call SaveKey("1_35")
  597.   call ch("key_fire",1_35,lors,"key")
  598.   call SaveKey("1_36")
  599.   call ch("key_use",1_36,lors,"key")
  600.   call SaveKey("1_37")
  601.   call ch("key_strafe",1_37,lors,"key")
  602.   call SaveKey("1_38")
  603.   call ch("key_speed",1_38,lors,"key")
  604.  end
  605. */
  606.  call close(file)
  607.  
  608.  call open(file,DIR||"Heretic.cfg",W)
  609.  
  610.  i = 1
  611.  do until i = line.0
  612.   call writeln(file,line.i)
  613.   i = i + 1
  614.  end
  615.  
  616.  call close(file)
  617.  
  618.  address HereticPortal
  619.  button ID CFGLO ATTRS MUIA_Disabled 0
  620.  button ID CFGSA ATTRS MUIA_Disabled 0
  621. return 0
  622.  
  623. LoadKey:
  624.  sak = arg(1)
  625.  plats = pos(""||sak||"",keys)
  626.  len = length(keys)
  627.  antal = len - plats + 1
  628.  keyjox = right(keys,antal)
  629.  sak = right(keys,antal)
  630.  sak = left(sak,pos(',',sak)-1)
  631.  poplist ID stringid content sak
  632. return
  633.  
  634. SaveKey:
  635.  stringid = arg(1)
  636.  poplist ID stringid
  637.  sak = result
  638.  plats = pos(sak,keys)
  639.  len = length(keys)
  640.  antal = len - plats + 1
  641.  sak = right(keys,antal)
  642.  sak = left(sak,pos('-',sak)-1)
  643. return(sak)
  644.  
  645. ch:
  646. searchingfor = arg(1)
  647. stringid = arg(2)
  648. saveorload = arg(3)
  649. ischat = pos("chatmacro",searchingfor)
  650. type = arg(4)
  651. key = ""
  652. i = 1
  653. do until i = line.0
  654.  if upper(left(line.i,length(searchingfor))) = upper(searchingfor) then do
  655.   if  ischat then parse var line.i RUBBISH '"' setting '"'
  656.   if ~ischat then parse var line.i RUBBISH "    " setting
  657.   if ~ischat then setting = Compress(setting,"    , ")
  658.   WASATLINE = i
  659.   if saveorload = "L" then do
  660.    select
  661.     when type = "S" then Address HereticPortal slider ID stringid ATTRS MUIA_Slider_Level setting
  662.     when type = "C" then Address HereticPortal cycle ID stringid ATTRS MUIA_Cycle_Active setting
  663.     when type = "key" then key = setting
  664.     otherwise Address HereticPortal string ID stringid content Setting
  665.    end
  666.   end
  667.   if saveorload = "S" then do
  668.    select
  669.     when type = "S" then address HereticPortal slider ID stringid
  670.     when type = "C" then address HereticPortal cycle ID stringid
  671.     when type = "key" then address HereticPortal poplist ID stringid
  672.     otherwise Address HereticPortal string ID stringid
  673.    end
  674.    changeto=result
  675.  
  676.    if upper(changeto) = upper("High") then changeto = 1
  677.    if upper(changeto) = upper("Low")  then changeto = 0
  678.    if upper(changeto) = upper("No")   then changeto = 0
  679.    if upper(changeto) = upper("Yes")  then changeto = 1
  680.  
  681.    if ~ischat then line.i = searchingfor"        "changeto
  682.    if  ischat then line.i = searchingfor"        "'"'changeto'"'
  683.   end
  684.  end
  685.  i = i + 1
  686. end
  687. return(key)
  688.